package com.megaspacevr.service;

import com.megaspacevr.entity.TimeSlots;
import com.baomidou.mybatisplus.extension.service.IService;

import java.time.LocalDate;
import java.util.List;

/**
 * <p>
 * 时间段表-30分钟小场次 服务类
 * </p>
 *
 * @author yezi
 * @since 2025-06-17
 */
public interface TimeSlotsService extends IService<TimeSlots> {

    /**
     * 根据日期获取时间段列表
     * @param date 查询日期
     * @return 时间段列表
     */
    List<TimeSlots> getTimeSlotsByDate(LocalDate date);

    /**
     * 获取所有可用日期
     * @return 可用日期列表
     */
    List<LocalDate> getAvailableDates();

    /**
     * 更新时间段的预约人数（增加1）
     * @param timeSlotId 时间段ID
     * @return 更新是否成功
     */
    boolean updateBookedCount(Long timeSlotId);

    /**
     * 减少时间段的预约人数（减少1）
     * @param timeSlotId 时间段ID
     * @return 更新是否成功
     */
    boolean decreaseBookedCount(Long timeSlotId);
}
